- SRC = $(wildcard *.c)
- OBJS = $(SRC:%.c=%.o)
- HEADERS = $(SRC:%.c=%.h)
- PRG = test
- OBJ = test.o
- MCU_TARGET = atmega168
- OPTIMIZE = -O2
- DEFS =
- LIBS = -lm
- ASRC = i2cmaster.S
- # You should not have to change anything below here.
- CC = avr-gcc
- CXX = avr-g++
- # Override is only needed by avr-lib build system.
- override CFLAGS = -g -Wextra -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS) -I/usr/avr/include/avr/
- override CXXFLAGS = -g -Wextra -Wall $(OPTIMIZE) -mmcu=$(MCU_TARGET) $(DEFS)
- override LDFLAGS = -Wl,-Map,$(PRG).map
- OBJCOPY = avr-objcopy
- OBJDUMP = avr-objdump
- all: $(PRG).elf lst text eeprom
- $(PRG).elf: $(SRC) $(HEADERS)
- $(CC) $(CFLAGS) $(LDFLAGS) -o $(PRG).elf $(SRC) $(LIBS)
- clean:
- rm -rf *.o $(PRG).elf *.eps *.png *.pdf *.bak
- rm -rf *.lst *.map $(EXTRA_CLEAN_FILES)
- flash:
- avrdude -c avrispmkII -P usb -p $(MCU_TARGET) -e -U flash:w:$(PRG).hex
- fuse:
- avrdude -c avrispmkII -P usb -p $(MCU_TARGET) -U lfuse:w:0xf7:m -U hfuse:w:0xdf:m -U efuse:w:0xf9:m
- lst: $(PRG).lst
- %.lst: %.elf
- $(OBJDUMP) -h -S $< > $@
- # Rules for building the .text rom images
- text: hex bin srec
- hex: $(PRG).hex
- bin: $(PRG).bin
- srec: $(PRG).srec
- %.hex: %.elf
- $(OBJCOPY) -j .text -j .data -O ihex $< $@
- %.srec: %.elf
- $(OBJCOPY) -j .text -j .data -O srec $< $@
- %.bin: %.elf
- $(OBJCOPY) -j .text -j .data -O binary $< $@
- # Rules for building the .eeprom rom images
- eeprom: ehex ebin esrec
- ehex: $(PRG)_eeprom.hex
- ebin: $(PRG)_eeprom.bin
- esrec: $(PRG)_eeprom.srec
- %_eeprom.hex: %.elf
- $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O ihex $< $@
- %_eeprom.srec: %.elf
- $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O srec $< $@
- %_eeprom.bin: %.elf
- $(OBJCOPY) -j .eeprom --change-section-lma .eeprom=0 -O binary $< $@
- # Every thing below here is used by avr-libc's build system and can be ignored
- # by the casual user.
- FIG2DEV = fig2dev
- EXTRA_CLEAN_FILES = *.hex *.bin *.srec
- dox: eps png pdf
- eps: $(PRG).eps
- png: $(PRG).png
- pdf: $(PRG).pdf
- %.eps: %.fig
- $(FIG2DEV) -L eps $< $@
- %.pdf: %.fig
- $(FIG2DEV) -L pdf $< $@
- %.png: %.fig
- $(FIG2DEV) -L png $< $@